KI

[ Npc ]Novo Sistema De Vip Com Npc

Por Killua, 06 de dez. de 2009 em NPCs, monsters e raids

otserv
tibia
script
14
4.7k
KilluaK
06 de dezembro de 2009 às 21:00

Bom eu criei um sistema de VIP pro meu OT, e como já ví várias dúvidas e pedidos em relação a isto, resolvi postar aqui. Creditos meus. (Eu sou o GOD Mell oks :positive: )

 

Começando, eu vou faser o seguinte, a premmium account será a nova VIP.

 

COMO?

]Para começar vá na pasta spells/spells.xml. Aperte Ctrl+F e digite prem="1" Exemplo

<instant name="Magic Rope" words="exani tera" soul="0" selftarget="1" aggressive="0" lvl="9" maglv="1" exhaustion="1" prem="1"enabled="1" script="magic rope.lua"></instant>

em seguida, apague o que esta em vermelho e coloque 0, assim

<instant name="Magic Rope" words="exani tera" soul="0" selftarget="1" aggressive="0" lvl="9" maglv="1" exhaustion="1" prem="0"enabled="1" script="magic rope.lua">

faça isso em todas as magias. Desta forma as magias serão liberadas para todos, ou seja, nimguem vai precisar ser premmium.

Depois vá na config.lua e onde estiver escrito

-- do you want everyone to have premium

freepremium = "yes"

Ou algo do tipo. Mude oque esta em vermelho para no assim

-- do you want everyone to have premium

freepremium = "no"

.

 

Pronto, agora nimguem começará com premmium account, você tambem pode acrescentar alguns benefícios aos VIP's, ex: magias, áreas etc :smile_positivo:

 

Bom, agora vamos fazer um NPC que possa vender esta nossa "nova premmium" ou VIP.

Primeiro vá até a pasta data/npc copie algum arquivo, apague oque estiver dentro, renomeie para VIP Seller e escreva:

<?xml version="1.0"?>

<npc name="VIP Seller" script="data/npc/scripts/vip.lua" access="5" level="1" maglevel="1" lookdir="1" autowalk="25">

<look type="266" head="0" body="114" legs="114" feet="94" addons="3"/>

</npc>

Em seguida vá até data/npc/scripts copie um arquivo existente, apague oque estiver dentro, renomei para vip.lua e escreva:

-- NPC VIP by (amoeba13)

 

local focus = 0

local talk_start = 0

local target = 0

local days = 0

 

function onThingMove(creature, thing, oldpos, oldstackpos)

 

end

 

 

function onCreatureAppear(creature)

 

end

 

 

function onCreatureDisappear(cid, pos)

if focus == cid then

selfSay('Tchau seu mau educado!')

focus = 0

talk_start = 0

end

end

 

 

function onCreatureTurn(creature)

 

end

 

 

function msgcontains(txt, str)

return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))

end

 

 

function onCreatureSay(cid, type, msg)

msg = string.lower(msg)

 

if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then

selfSay('Olá ' .. creatureGetName(cid) .. '! Eu vendo VIP, oque vai querer?')

focus = cid

talk_start = os.clock()

 

elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then

selfSay('Relaxa, ' .. creatureGetName(cid) .. '! Jaja eu falo com vc.')

 

elseif focus == cid then

talk_start = os.clock()

 

if msgcontains(msg, 'promotion') or msgcontains(msg, 'promote') then

if getPlayerVocation(cid) > 4 then

selfSay('Sorry, you are already promoted.')

talk_state = 0

elseif getPlayerLevel(cid) < 50 then

selfSay('Sorry, you need level 50 to buy promotion.')

talk_state = 0

elseif not isPremium(cid) then

selfSay('Sorry, you must be premium to buy promotion.')

talk_state = 0

else

selfSay('Do you want to buy promotion for 150k?')

talk_state = 1

end

 

elseif msgcontains(msg, 'vip') or msgcontains(msg, 'vip account') then

selfSay('Voce quer comprar 30 dias de VIP por 200 MC?')

talk_state = 2

 

elseif talk_state == 1 then

if msgcontains(msg, 'yes') then

if pay(cid,150000000) then

doPlayerSetVocation(cid, getPlayerVocation(cid)+4)

selfSay('You are now promoted!')

else

selfSay('Sorry, you do not have enough money.')

end

end

talk_state = 0

 

elseif talk_state == 2 then

if msgcontains(msg, 'yes') then

if doPlayerRemoveItem(cid,2157,200) == 0 then

selfSay('Isso nao e o suficiente!')

addon_state = 0

else

selfSay('/premium '.. creatureGetName(cid) ..', 30')

selfSay('You have 30 days of VIP!')

talk_start = 0

end

end

talk_state = 0

 

elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then

selfSay('Good bye, ' .. creatureGetName(cid) .. '!')

focus = 0

talk_start = 0

end

end

end

 

 

function onCreatureChangeOutfit(creature)

 

end

 

 

function onThink()

doNpcSetCreatureFocus(focus)

if (os.clock() - talk_start) > 30 then

if focus > 0 then

selfSay('Next Please...')

end

focus = 0

end

if focus ~= 0 then

if getDistanceToCreature(focus) > 5 then

selfSay('Tchau senhor Mal educado!')

focus = 0

end

end

end

agora é só mudar.

Roxo claro MC = Mell Coins, é o tipo de moeda VIP que eu desenvolvi.

Rosa 2157 é o ID do item no caso este é o IP do Gold Nugget, no meu caso os Mell Coins.

Laranja claro 200 é a quantidade de moedas vips(MC) que irá custar o VIP.

Vermelho 30 = Quantidade em dias de VIP que o player receberá.

 

POR FAVOR APROVEM e POSTEM. Meu primero topico demorei pra caramba pra fazer.

bugs ou qualquer problemas me avisem que tentarei arrumar.

todos os créditos a mim!

 

<-----Edit----->

Gente, arrumei um BUG que tinha no NPC, antes mesmo o player nao tendo as moedas VIP o NPC dava VIP...Agora ta tudo certinho!

Editado Dezembro 13 por amoeba13

Piabeta KunP
07 de dezembro de 2009 às 06:25

vou ver se funfa ai eu mando um poste aprovando pros players coeçar a usar!

Kude AmpolaK
07 de dezembro de 2009 às 13:27

Testando o npc, mais prefiro por comando mesmo que nem tem no styller.

Mas vlwww por trazer pra cá.

KilluaK
13 de dezembro de 2009 às 15:42

Pow, dá o maior trabalhão para fazer, e nimguem se dá o trabalho de postar nada. =/

gkaonicx72G
13 de dezembro de 2009 às 16:05

Opa obrigado por trazer novo conteúdo ao Xtibia.

 

Novo Sistema De Vip Com Npc, By GOD Mell

todos os créditos a mim!

Duvida enfim foi você ou o God Mell?

 

E tente melhorar a formatação do tópico tem muitos erros.

Até mais e estou ao aguardo da resposta se é seu ou do GOD Mell.

KilluaK
13 de dezembro de 2009 às 16:57
Opa obrigado por trazer novo conteúdo ao Xtibia.

 

 

 

Duvida enfim foi você ou o God Mell?

 

E tente melhorar a formatação do tópico tem muitos erros.

Até mais e estou ao aguardo da resposta se é seu ou do GOD Mell.

 

Eu sou o GOD Mell ^^

quanto a má formatação, logo estarei editando.

KilluaK
13 de dezembro de 2009 às 21:04

POR FAVOR ME DESCULPEM PELO DOUBLE POST!!

eu fui clicar editar, cliquei em responder. POR FAVOR DESCULPEM

deletem este post

Editado Dezembro 13 por amoeba13

Henrique MouraH
18 de dezembro de 2009 às 06:52

Acredito que isso não seja bem um tutorial.

 

Tópico movido :forward:

24 de dezembro de 2009 às 17:06

Pow Prefiro Fazer uma area De House Pelo Map editor e lah dentro colocar os Teleports

Mais ta Aprovado :button_ok:

gm_metal2G
27 de dezembro de 2009 às 11:40

Muito bom o tutorial!

ms gostaria de saber como eu coloco esse npc no mapa ?

porque eu abro o RME e vou nos npc e o vip seller nao se encontra la...

ai eu vou em file>import>monster/npc e imprto o vip seller mas ele nao vai pro RME

como faço?

2 meses depois...
pedrokkkkP
02 de fevereiro de 2010 às 23:23

Ou God Mell me da um help aki

 

eu fiz como vc falo... mas quando falo hi

ele n responde da um help aki =)

Editado Fevereiro 2 por Pedrokkkk

1 mês depois...
manogokoM
16 de março de 2010 às 12:17

God ajuda plz eu falo hi e o npc ignora "tentei com palyers e a msm coisa "..

 

Ajuda Plzz.

3 meses depois...
marlonfifasM
08 de junho de 2010 às 00:42

Pow cara ta tudo blz e talz, eu achei até maneiro o jeito de conseguir vip comprando com moedas especiais... mas DO QUE ADIANTA essa blza toda e o NPC nao fala com vc? eu falo HI, Hello, HIHO a bagaça toda e ele nao responde... entao nota 0... ou vc corrigi isso ou entao é até melhor apagar seu topico pq ta inutil o npc ^^. Malz ai o tom, mas é pq se vc quer fazer algo, faça bem feito.

2 semanas depois...
psyalisonP
17 de junho de 2010 às 14:49

Bom eu criei um sistema de VIP pro meu OT, e como já ví várias dúvidas e pedidos em relação a isto, resolvi postar aqui. Creditos meus. (Eu sou o GOD Mell oks <img src="http://www.xtibia.com/forum/public/style_emoticons/<#EMO_DIR#>/positive.gif" style="vertical-align:middle" emoid=":positive:" border="0" alt="positive.gif" /> )

 

Começando, eu vou faser o seguinte, a premmium account será a nova VIP.

 

<!--sizeo:2--><span style="font-size:10pt;line-height:100%"><!--/sizeo--><u><b>COMO?</b></u><!--sizec--></span><!--/sizec-->

]Para começar vá na pasta <u><i><b>spells/spells.xml</b></i></u>. Aperte Ctrl+F e digite prem="1" Exemplo

<!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec--><instant name="Magic Rope" words="exani tera" soul="0" selftarget="1" aggressive="0" lvl="9" maglv="1" exhaustion="1" prem="<!--coloro:#FF0000--><span style="color:#FF0000"><!--/coloro-->1<!--colorc--></span><!--/colorc-->"enabled="1" script="magic rope.lua"></instant><!--QuoteEnd--></div><!--QuoteEEnd-->

em seguida, apague o que esta em vermelho e coloque 0, assim

<!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec--><instant name="Magic Rope" words="exani tera" soul="0" selftarget="1" aggressive="0" lvl="9" maglv="1" exhaustion="1" prem="<!--coloro:#FF0000--><span style="color:#FF0000"><!--/coloro-->0<!--colorc--></span><!--/colorc-->"enabled="1" script="magic rope.lua"><!--QuoteEnd--></div><!--QuoteEEnd-->

faça isso em todas as magias. Desta forma as magias serão liberadas para todos, ou seja, nimguem vai precisar ser premmium.

Depois vá na <i><u><b>config.lua </b></u></i>e onde estiver escrito

<!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->-- do you want everyone to have premium

freepremium = "<!--coloro:#FF0000--><span style="color:#FF0000"><!--/coloro-->yes<!--colorc--></span><!--/colorc-->"<!--QuoteEnd--></div><!--QuoteEEnd-->

Ou algo do tipo. Mude oque esta em vermelho para no assim

<!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->-- do you want everyone to have premium

freepremium = "<!--coloro:#FF0000--><span style="color:#FF0000"><!--/coloro-->no<!--colorc--></span><!--/colorc-->"<!--QuoteEnd--></div><!--QuoteEEnd-->.

 

Pronto, agora nimguem começará com premmium account, você tambem pode acrescentar alguns benefícios aos VIP's, ex: magias, áreas etc <img src="http://www.xtibia.com/forum/style_emoticons/<#EMO_DIR#>/smile_positivo.gif" style="vertical-align:middle" emoid=":smile_positivo:" border="0" alt="smile_positivo.gif" />

 

<!--sizeo:2--><span style="font-size:10pt;line-height:100%"><!--/sizeo--><b>Bom, agora vamos fazer um NPC que possa vender esta nossa "nova premmium" ou VIP.</b><!--sizec--></span><!--/sizec-->

Primeiro vá até a pasta <i><u><b>data/npc</b></u></i> copie algum arquivo, apague oque estiver dentro, renomeie para VIP Seller e escreva:

<!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec--><?xml version="1.0"?>

<npc name="VIP Seller" script="data/npc/scripts/vip.lua" access="5" level="1" maglevel="1" lookdir="1" autowalk="25">

<look type="266" head="0" body="114" legs="114" feet="94" addons="3"/>

</npc><!--QuoteEnd--></div><!--QuoteEEnd-->

Em seguida vá até <i><u><b>data/npc/scripts</b></u></i> copie um arquivo existente, apague oque estiver dentro, renomei para vip.lua e escreva:<!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->-- NPC VIP by (amoeba13)

 

local focus = 0

local talk_start = 0

local target = 0

local days = 0

 

function onThingMove(creature, thing, oldpos, oldstackpos)

 

end

 

 

function onCreatureAppear(creature)

 

end

 

 

function onCreatureDisappear(cid, pos)

if focus == cid then

selfSay('Tchau seu mau educado!')

focus = 0

talk_start = 0

end

end

 

 

function onCreatureTurn(creature)

 

end

 

 

function msgcontains(txt, str)

return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))

end

 

 

function onCreatureSay(cid, type, msg)

msg = string.lower(msg)

 

if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then

selfSay('Olá ' .. creatureGetName(cid) .. '! Eu vendo VIP, oque vai querer?')

focus = cid

talk_start = os.clock()

 

elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then

selfSay('Relaxa, ' .. creatureGetName(cid) .. '! Jaja eu falo com vc.')

 

elseif focus == cid then

talk_start = os.clock()

 

if msgcontains(msg, 'promotion') or msgcontains(msg, 'promote') then

if getPlayerVocation(cid) > 4 then

selfSay('Sorry, you are already promoted.')

talk_state = 0

elseif getPlayerLevel(cid) < 50 then

selfSay('Sorry, you need level 50 to buy promotion.')

talk_state = 0

elseif not isPremium(cid) then

selfSay('Sorry, you must be premium to buy promotion.')

talk_state = 0

else

selfSay('Do you want to buy promotion for 150k?')

talk_state = 1

end

 

elseif msgcontains(msg, 'vip') or msgcontains(msg, 'vip account') then

selfSay('Voce quer comprar 30 dias de VIP por 200 <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro-->MC<!--colorc--></span><!--/colorc-->?')

talk_state = 2

 

elseif talk_state == 1 then

if msgcontains(msg, 'yes') then

if pay(cid,150000000) then

doPlayerSetVocation(cid, getPlayerVocation(cid)+4)

selfSay('You are now promoted!')

else

selfSay('Sorry, you do not have enough money.')

end

end

talk_state = 0

 

elseif talk_state == 2 then

if msgcontains(msg, 'yes') then

if doPlayerRemoveItem(cid,<!--coloro:#FF00FF--><span style="color:#FF00FF"><!--/coloro-->2157<!--colorc--></span><!--/colorc-->,<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->200<!--colorc--></span><!--/colorc-->) == 0 then

selfSay('Isso nao e o suficiente!')

addon_state = 0

else

selfSay('/premium '.. creatureGetName(cid) ..', <!--coloro:#FF0000--><span style="color:#FF0000"><!--/coloro-->30<!--colorc--></span><!--/colorc-->')

selfSay('You have 30 days of VIP!')

talk_start = 0

end

end

talk_state = 0

 

elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then

selfSay('Good bye, ' .. creatureGetName(cid) .. '!')

focus = 0

talk_start = 0

end

end

end

 

 

function onCreatureChangeOutfit(creature)

 

end

 

 

function onThink()

doNpcSetCreatureFocus(focus)

if (os.clock() - talk_start) > 30 then

if focus > 0 then

selfSay('Next Please...')

end

focus = 0

end

if focus ~= 0 then

if getDistanceToCreature(focus) > 5 then

selfSay('Tchau senhor Mal educado!')

focus = 0

end

end

end<!--QuoteEnd--></div><!--QuoteEEnd-->

agora é só mudar.

<b><!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro-->Roxo claro<!--colorc--></span><!--/colorc--></b> MC = Mell Coins, é o tipo de moeda VIP que eu desenvolvi.

<b><!--coloro:#FF00FF--><span style="color:#FF00FF"><!--/coloro-->Rosa<!--colorc--></span><!--/colorc--></b> 2157 é o ID do item no caso este é o IP do Gold Nugget, no meu caso os Mell Coins.

<b><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->Laranja claro<!--colorc--></span><!--/colorc--></b> 200 é a quantidade de moedas vips(MC) que irá custar o VIP.

<b><!--coloro:#FF0000--><span style="color:#FF0000"><!--/coloro-->Vermelho<!--colorc--></span><!--/colorc--></b> 30 = Quantidade em dias de VIP que o player receberá.

 

POR FAVOR <b>APROVEM e POSTEM</b>. Meu primero topico demorei pra caramba pra fazer.

bugs ou qualquer problemas me avisem que tentarei arrumar.

<i>todos os créditos a mim!</i>

 

<-----Edit----->

Gente, arrumei um BUG que tinha no NPC, antes mesmo o player nao tendo as moedas VIP o NPC dava VIP...Agora ta tudo certinho!

 

O opc não fala com vc...